//
//  ViewController.swift
//  swift-可选项
//
//  Created by hanbo on 2018/10/24.
//  Copyright © 2018年 hanbo. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
//        demo()
        
        demo1()
    }
    
    
    func demo1() {
        
        // 1. > 定义 y,没有初始化
        // 2. > 给常量设置数值,初始化的工作只能做一次
       let y:Int? = 20

//        y = 30
        print(y!)
        
        
        // ***** let 的可选值没有默认值
        // ***** var 的可选值,默认为nil,
        var x :Int?
        x = 10
        x = 100
        print(x as Any)
        
    }
    
    
    /**
     *  定义 可选项 使用?
     *  解包使用!, 准备计算
     */
    
    func demo() {
        // 1.原始的可选项定义
        // none:没有值,后者some,某一类值
        let x:Optional = 10
        
        // 2.简单的定义
        // ? 用来定义y是一个可选的int类型,可能没有值,也可能有一个整数
        let y:Int? = 20
        
        let z:Int? = 40
        
        
        print(x as Any)
        
        print(y as Any)
        
        
        // Constant 'z' used before being initialized
        // 常量z在使用之前,必须初始化
        
        // Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
        print(z!)
        
        // 1. >不同类型之间的值,不能直接运算!如果没有值是nil,不是任何数据类型,不能参与计算
        // 2. > `!`强制解包 - 从可选值中强项获取对应的非空值
        print(x! + y!)
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

